local Character = owner.Character local ChainRoot = Character:FindFirstChild("UpperTorso") or Character:FindFirstChild("Torso") local EndEffector = Character:WaitForChild("Head") local Humanoid = Character:FindFirstChildOfClass("Humanoid") script.Parent = owner.Character local CameraPart = Instance.new("Part") CameraPart.Archivable = false CameraPart.Name = "CameraLookVector" CameraPart.Anchored = false CameraPart.CanCollide = false CameraPart.CanQuery = false CameraPart.CanTouch = false CameraPart.Size = Vector3.new(1, 1, 1) CameraPart.Transparency = 1 CameraPart.Parent = Character local CameraAnchor = Instance.new("Part") CameraAnchor.Archivable = false CameraAnchor.Name = "CameraAnchor" CameraAnchor.Anchored = true CameraAnchor.CanCollide = false CameraAnchor.CanQuery = false CameraAnchor.CanTouch = false CameraAnchor.Size = Vector3.new(1, 1, 1) CameraAnchor.Transparency = 1 CameraAnchor.Parent = Character local Attachment0 = Instance.new("Attachment") Attachment0.WorldPosition = Vector3.new(0, 0, 0) Attachment0.Parent = CameraPart local Attachment1 = Instance.new("Attachment") Attachment1.WorldPosition = Vector3.new(0, 0, 0) Attachment1.Parent = CameraAnchor local AlignPosition = Instance.new("AlignPosition") AlignPosition.Mode = Enum.PositionAlignmentMode.TwoAttachment AlignPosition.RigidityEnabled = true AlignPosition.MaxForce = math.huge AlignPosition.Responsiveness = 200 AlignPosition.MaxVelocity = math.huge AlignPosition.ApplyAtCenterOfMass = true AlignPosition.Attachment0 = Attachment0 AlignPosition.Attachment1 = Attachment1 AlignPosition.Parent = CameraPart local IKControl = Instance.new("IKControl") IKControl.Archivable = false IKControl.Type = Enum.IKControlType.LookAt IKControl.Target = CameraPart IKControl.ChainRoot = ChainRoot IKControl.EndEffector = EndEffector IKControl.Weight = 0.999 IKControl.Parent = Humanoid NLS([[ local CameraPart = script.Parent:WaitForChild("CameraLookVector") local CameraAnchor = script.Parent:WaitForChild("CameraAnchor") local Head = script.Parent:WaitForChild("Head") local Attachment1 = CameraAnchor:WaitForChild("Attachment") local function Update() Attachment1.Position = Head.Position + workspace.CurrentCamera.CFrame.LookVector * 10 CameraPart.Position = Attachment1.Position end workspace.CurrentCamera:GetPropertyChangedSignal("CFrame"):Connect(Update) Update() ]], Character) pcall(CameraPart.SetNetworkOwner, CameraPart, owner)